A Framework for CFG-Based Static Program Analysis of Ada Programs

نویسندگان

  • Raul Fechete
  • Georg Kienesberger
  • Johann Blieberger
چکیده

The control flow graph is the basis for many code optimisation and analysis techniques. We introduce a new framework for the construction of powerful CFG-based representations of arbitrary Ada programs. The generated data holds extensive information about the original Ada source, such as visibility, package structure and type definitions and provides means for complete interprocedural analysis. We use ASIS-for-GNAT as an interface to the Ada environment and extract the needed information in a single traversal of the provided syntax trees. In addition, further refinement of the resulting data structures is done.

منابع مشابه

Interprocedural Symbolic Evaluation of Ada Programs with Aliases 1 Symbolic Evaluation

Symbolic Evaluation is a technique aimed at determining dynamic properties of programs. We extend our intraprocedural data-ow framework introduced in 3] to support interprocedural symbolic evaluation. Our data-ow framework utilizes a novel approach based on an array algebra to handle aliases induced by procedure calls. It serves as as a basis for static program analysis (e.g. reaching deenition...

متن کامل

Refinement-Based CFG Reconstruction from Unstructured Programs

This paper addresses the issue of recovering a both safe and precise approximation of the Control Flow Graph (CFG) of an unstructured program, typically an executable file. The problem is tackled in an original way, with a refinement-based static analysis working over finite sets of constant values. Requirement propagation allows the analysis to automatically adjust the domain precision only wh...

متن کامل

Towards a Runtime Verification Framework for the Ada Programming Language

Runtime verification is an emerging discipline that investigates methods and tools to enable the verification of program properties during the execution of the application. The goal is to complement static analysis approaches, in particular when static verification leads to the explosion of states. Non-functional properties, such as the ones present in real-time systems are an ideal target for ...

متن کامل

Dynamic Branch Resolution Based on Combined Static Analyses

Static analysis requires the full knowledge of the overall program structure. The structure of a program can be represented by a Control Flow Graph (cfg) where vertices are basic blocks (bb) and edges represent the control flow between the bb. To construct a full cfg, all the bb as well as all of their possible targets addresses must be found. In this paper, we present a method to resolve dynam...

متن کامل

Improving Static Analysis Accuracy on Concurrent Ada Programs: Complexity Results and Empirical Findings

This paper presents several techniques for improving the accuracy of static analysis of concurrent Ada programs. We determine the cost of building the program representations used to perform the analysis and examine the complexity of performing analysis on those representations. Inaccuracies in the static analysis are reflected in spurious results, which can be generated if the analysis conside...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

متن کامل
عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2008